{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "02743977-2077-4f4e-af4a-694ab3c15f4f",
   "metadata": {},
   "source": [
    "<h1 style=\"color: blue; font-size: 28px;\">高等数学·下册第七版-二重积分的计算法 140~144页笔记</h1>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "464ac0b9-cbc5-4772-bb18-02e9dfda1672",
   "metadata": {},
   "source": [
    "> [高等数学第七版 下册](https://eplat.imau.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=1907062&resid=538002&lid=27943&preview=preview)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "422560c8-7372-43fd-9f3c-6dcabf754398",
   "metadata": {},
   "source": [
    "## ***第二节 二重积分的计算法***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "38d68a11-31c0-4e02-ba87-1fde675140e1",
   "metadata": {},
   "source": [
    "#### 按照二重积分的定义来计算二重积分,对少数特别简单的被积函数和积分区域来说是可行的,但对一般的函数和区域来说,这不是一种切实可行的方法本节介绍一种计算二重积分的方法,这种方法是把二重积分化为<mark>两次单积分</mark> (即两次定积分)来计算。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4f4a3801-b3de-4a9e-9519-66ad9ee3c688",
   "metadata": {},
   "source": [
    "### **一、利用直角坐标计算二重积分**\n",
    "- #### 几何观点讨论二重积分\n",
    "$$考虑二重积分\\iint f(x,y)d\\sigma，其中f(x,y)\\geqslant 0。积分区域D可以用不等式表示：\n",
    "\\varphi_1(x)\\leqslant y\\leqslant\\varphi_2(x),\\quad a\\leqslant x\\leqslant b$$\n",
    "> $其中\\varphi_1(x)和\\varphi_2(x)在区间[a,b]上连续。$ \n",
    "- #### 二重积分的几何意义\n",
    "$二重积分\\iint f(x,y)d\\sigma的值等于以D为底，以曲面z=f(x,y)为顶的曲顶柱体的体积。$\n",
    "- #### 计算截面面积\n",
    "$在区间[a,b]上任意取一点x_0，作平行于yOz面的平面x=x_0。截面是一个以区间[\\varphi_1(x_0),\\varphi_2(x_0)]为底，曲线z=f(x_0,y)为曲边的曲边梯形。$\n",
    "$截面面积为：\n",
    "A(x_0)=\\int{\\varphi_1(x_0)}^{\\varphi_2(x_0)}f(x_0,y)dy$\n",
    "\n",
    "一般地，过区间[a,b]上任一点x且平行于yOz面的平面截曲顶柱体所得截面的面积为：\n",
    "<mark>$A(x)=\\int{\\varphi_1(x)}^{\\varphi_2(x)}f(x,y)dy$</mark>\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a122442e-c2bb-433a-a011-2d05f147b440",
   "metadata": {},
   "source": [
    "![二重积分](https://tse4-mm.cn.bing.net/th/id/OIP-C.9NC7Ba-kmZpBd3KhBwSTcQAAAA?w=192&h=162&c=7&r=0&o=5&dpr=1.5&pid=1.7))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3058d2f1-d821-482b-b967-24fc5084ecee",
   "metadata": {},
   "source": [
    "- #### 柱体体积\n",
    "\n",
    "$应用计算平行截面面积为已知的立体体积的方法，得曲顶柱体体积为：\n",
    "V=\\int_a^b A(x)dx=\\int_a^b\\left[\\int{\\varphi_1(x)}^{\\varphi_2(x)}f(x,y)dy\\right]dx$\n",
    "\n",
    "$这个体积也就是所求二重积分的值，从而有等式：\n",
    "\\iint f(x,y)d\\sigma=\\int_a^b\\left[\\int{\\varphi_1(x)}^{\\varphi_2(x)}f(x,y)dy\\right]dx\\quad(2-1)$\n",
    "\n",
    "$先对y，后对x的二次积分上式右端的积分叫做先对y，后对x的二次积分。即先把x看做常数，把f(x,y)只看做y的函数，并对y计算从\\varphi_1(x)到\\varphi_2(x)的定积分；然后把算得的结果（是x的函数）再对x计算在区[a,b]上的定积分。$\n",
    "\n",
    "$这个先对y，后对x. 的二次积分也常记作：\n",
    "\\int_a^b dx\\int{\\varphi_1(x)}^{\\varphi_2(x)}f(x,y)dy\n",
    "$\n",
    "\n",
    "因此，等式(2-1)也写成：\n",
    "<mark>$\\iint f(x,y)d\\sigma=\\int_a^b dx\\int{\\varphi_1(x)}^{\\varphi_2(x)}f(x,y)dy\n",
    "$</mark>$\\quad(2-1')$\n",
    "\n",
    "\n",
    "类似地，先对x，后对y的二次积分\n",
    "\n",
    "$如果积分区域D可以用不等式表示：\n",
    "\\psi_1(y)\\leqslant x\\leqslant\\psi_2(y),\\quad c\\leqslant y\\leqslant d$\n",
    "\n",
    "> $其中\\psi_1(y)和\\psi_2(y)在区间[c,d]上连续，那么就有：\n",
    "\\iint f(x,y)d\\sigma=\\int_c^d\\left[\\int{\\psi_1(y)}^{\\psi_2(y)}f(x,y)dx\\right]dy\n",
    "$\n",
    "\n",
    "$上式右端的积分叫做先对x，后对y的二次积分，这个积分也常记作：\n",
    "\\int_c^d dy\\int{\\psi_1(y)}^{\\psi_2(y)}f(x,y)dx\n",
    "$\n",
    "\n",
    "因此，等式也写成：<mark>\n",
    "$\\iint f(x,y)d\\sigma=\\int_c^d dy\\int{\\psi_1(y)}^{\\psi_2(y)}f(x,y)dx\n",
    "$</mark>$(2-2')$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "be2605c7-d6c9-4e93-89f5-73193c68b603",
   "metadata": {},
   "source": [
    "### **二、积分区域的类型**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "daa31bff-93b7-418b-8e25-fc5baf2e3206",
   "metadata": {},
   "source": [
    "- ###**X型区域**\n",
    "\n",
    "图 1 所示的积分区域为 X型区域。应用公式(2-1)时，积分区域必须是 X型区域。X型区域\\(D\\)的特点是：穿过\\(D\\)内部且平行于\\(y\\)轴的直线与\\(D\\)的边界相交不多于两点。\n",
    "\n",
    "\n",
    "- ###**Y型区域**\n",
    "\n",
    "图 2 所示的积分区域为 Y型区域。应用公式(2-2)时，积分区域必须是 Y型区域。Y型区域\\(D\\)的特点是：穿过\\(D\\)内部且平行于\\(x\\)轴的直线与\\(D\\)的边界相交不多于两点。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1cb51ad6-2282-4df3-89f0-238cbcadb8c2",
   "metadata": {},
   "source": [
    "- ### **利用对称性求二重积分**</a>\n",
    "| 对称性 | 积分公式 |\n",
    "| --- | --- |\n",
    "| 积分区域D关于x轴对称 | 如果  $f(x, y) = f(-x, y)$ ，则  $\\iint_D f(x, y) \\, dA = 2 \\int_{a}^{b} \\int_{g_1(x)}^{g_2(x)} f(x, y) \\, dy \\, dx$  |\n",
    "| 积分区域D关于y轴对称 | 如果  $f(x, y) = f(x, -y)$ ，则  $\\iint_D f(x, y) \\, dA = 2 \\int_{c}^{d} \\int_{h_1(y)}^{h_2(y)} f(x, y) \\, dx \\, dy$  |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1faf5099-103d-49a2-b208-55928ddabfcf",
   "metadata": {},
   "source": [
    "![x](https://tse1-mm.cn.bing.net/th/id/OIP-C.n__33amFzk9IENZfk3RBEgHaEd?w=288&h=180&c=7&r=0&o=5&dpr=1.5&pid=1.7\"图1\")![y]()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4ddbb1ee-19d8-423d-8d01-62ee89a6c3a6",
   "metadata": {},
   "source": [
    "### ***例题***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2574ade2-ca68-4184-b993-723e83b41588",
   "metadata": {},
   "source": [
    "#### 例  \r\n",
    "#### 要求计算二重积分$ \\iint_D xy\\,d\\sigma，其中区域D由直线y=1、x=2及y=x$所围成的闭区域"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 238,
   "id": "18a76e13-e1c5-4ec4-b91c-0d51dae56bec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABuGElEQVR4nO3dd3hUdd7+8XsmvZDQQygREASkV8UFUwkkiIQmItKRIh1BIJSQBEV3XUV/Kq6rguhaVhEVQQUfpa1YUEBUxIaAEKQnpE8y5/eHj3nMEgKB5JzJ5P26rlzXzMl3MvdkHPzknnPO2AzDMAQAAAAAAACYyG51AAAAAAAAAFQ9lFIAAAAAAAAwHaUUAAAAAAAATEcpBQAAAAAAANNRSgEAAAAAAMB0lFIAAAAAAAAwHaUUAAAAAAAATEcpBQAAAAAAANNRSgEAAAAAAMB0lFIALtvq1atls9lK/JozZ45++eUX2Ww2rV692uqoV+T8+fO69957FRsbqzp16shms2np0qUXXf/ll18qJiZGgYGBql69ugYOHKiff/75su9vzZo1uv3229WiRQvZ7XY1btz4omszMzM1c+ZM1a9fX76+vurQoYNeeeWVMjw6AABgBean4syan8qaC4A1PK0OAKDyWbVqlVq2bFlsW/369RUSEqKdO3fq2muvtSjZ1Tl9+rSefvpptW/fXgkJCXrmmWcuuva7775TRESEOnTooH//+9/Kzc3VkiVL1LNnT+3Zs0d16tS55P298MILOn78uLp16yan0ymHw3HRtQMHDtTnn3+uBx54QNddd51eeuklDRs2TE6nU3fccccVPV4AAGAe5idz56ey5AJgHUopAGXWpk0bdenSpcTv3XjjjSan+V12drb8/f2v6mdcc801Onv2rGw2m06dOlXq8LJkyRL5+PjonXfeUVBQkCSpc+fOat68uR566CE9+OCDl7y/999/X3b77zus3nLLLfr6669LXLdx40Zt3ry5qIiSpMjISB06dEhz587V0KFD5eHhUdaHCwAATMT8ZO78VJZcAKzD4XsAys3Fdj9/66231K5dO/n4+Khp06Z69NFHtXTpUtlstkveVtIFu1v/cdsvv/xSgwcPVo0aNYreXTQMQ08++aQ6dOggPz8/1ahRQ4MHD76s3cL/2JX+UgoKCvTOO+9o0KBBRQOV9PvwExkZqXXr1l3yZ0gqGqguZd26dQoMDNSQIUOKbR8zZoyOHTumTz/99LJ+DgAAcD3MTxUzP11uLgDWopQCUGaFhYUqKCgo9nUx7733ngYOHKhatWrp1Vdf1V//+le9/PLLev755686x8CBA9WsWTO99tpreuqppyRJEydO1MyZMxUTE6M333xTTz75pL755hvddNNN+u233676PiXpp59+Uk5Ojtq1a3fB99q1a6cff/xRubm55XJfkvT111+rVatW8vQsvnPrH/d/sXcIAQCA62B+Mnd+AlA5cPgegDIraRfzix3Pv2TJEjVo0EDvv/++vL29JUl9+vQp9aTel2vUqFFKTk4uuv7JJ5/on//8p/7+979r9uzZRdt79uyp6667Tg8//PBl7RZ+KadPn5Yk1axZ84Lv1axZU4Zh6OzZswoNDb3q+/rj/po2bVriff05DwAAcF3MT+bOTwAqB0opAGW2Zs0atWrVqti2/96LR5KysrK0a9cuTZ06tWigkqTAwED169fvqj9lZtCgQcWuv/POO7LZbLrzzjuLvftYr149tW/fXlu2bLmq+/tvpe0S/sf3CgsLZRhG0Xa73X7Zu52X9b4AAIDrYn76nZnzEwDXRykFoMxatWp10RN1/tnZs2dlGIZCQkIu+F5J28rqv99J++233y56f5JK3NvoStSqVUtSyXsonTlzRjabTdWrV5ckXXvttTp06FDR95OSksr8ccS1atW66H1JJb/jCAAAXAvzk7nzE4DKgVIKQIWpUaOGbDZbieciOH78eLHrvr6+kqS8vLxi20s7NO2/32mrXbu2bDabtm/fLh8fnwvWl7TtSlx77bXy8/PTvn37Lvjevn371KxZs6LHs379+mKPqX79+mW+v7Zt2+rll19WQUFBsXdU/7j/Nm3alPlnAgAA18T8VD7zE4DKgX0gAVSYgIAAdenSRW+++aby8/OLtmdmZuqdd94ptjYkJES+vr766quvim1/6623Lvv+brnlFhmGoaNHj6pLly4XfLVt2/bqHtD/8vT0VL9+/fTGG2/o/PnzRdsPHz6sjz76SAMHDiza1rZt22IZrmSoGjBggDIzM7V27dpi259//nnVr19fN9xww5U/GAAA4FKYn8pnfgJQObCnFIAKlZKSor59+6p3796aMWOGCgsL9be//U2BgYFFh59JKjqXwXPPPadrr71W7du312effaaX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",
      "text/plain": [
       "<Figure size 1200x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Define the functions for the boundaries\n",
    "def y1(x):\n",
    "    return np.full_like(x, 1)  # Ensure y1_values has the same length as x\n",
    "\n",
    "def y2(x):\n",
    "    return x\n",
    "\n",
    "# Create a range of x values from 1 to 2\n",
    "x = np.linspace(1, 2, 400)\n",
    "\n",
    "# Calculate the corresponding y values for the boundaries\n",
    "y1_values = y1(x)\n",
    "y2_values = y2(x)\n",
    "\n",
    "# Create a figure and a set of subplots\n",
    "fig, axs = plt.subplots(1, 2, figsize=(12, 6))\n",
    "\n",
    "# Plot the first graph (Figure 10-10)\n",
    "axs[0].fill_between(x, y1_values, y2_values, color='gray', alpha=0.5)\n",
    "axs[0].plot(x, y1_values, 'k--', label='y=1')  # Use 'k--' for dashed line\n",
    "axs[0].plot(x, y2_values, 'k-', label='y=x')  # Use 'k-' for solid line\n",
    "axs[0].set_xlim([0, 2.5])\n",
    "axs[0].set_ylim([0, 2.5])\n",
    "axs[0].set_xlabel('x')\n",
    "axs[0].set_ylabel('y')\n",
    "axs[0].set_title('Figure 10-10')\n",
    "axs[0].legend()\n",
    "\n",
    "# Plot the second graph (Figure 10-11)\n",
    "axs[1].fill_between(x, y1_values, y2_values, color='gray', alpha=0.5)\n",
    "axs[1].plot(x, y1_values, 'k--', label='y=1')\n",
    "axs[1].plot(x, y2_values, 'k-', label='y=x')\n",
    "axs[1].plot([2, 2], [0, 2], 'k--', label='x=2')  # Corrected line for x=2\n",
    "axs[1].set_xlim([0, 2.5])\n",
    "axs[1].set_ylim([0, 2.5])\n",
    "axs[1].set_xlabel('x')\n",
    "axs[1].set_ylabel('y')\n",
    "axs[1].set_title('Figure 10-11')\n",
    "axs[1].legend()\n",
    "\n",
    "# Adjust layout to prevent overlap\n",
    "plt.tight_layout()\n",
    "\n",
    "# Save the figure\n",
    "plt.savefig('integral_region_plots.png')\n",
    "\n",
    "# Show the plot\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6910c8b3-e51e-4f4c-a4ed-9ad452431551",
   "metadata": {},
   "source": [
    "1. **绘制积分区域**  $D$ （见图 10-10）。区域  $D$  是  $X$  型的，横坐标的变动范围是区间  $[1,2]$ 。\n",
    "\n",
    "2. **确定积分范围**：在区间  $[1,2]$  上任意取定一个  $x$  值，对应的纵坐标从  $y=1$  变到  $y=x$ 。\n",
    "\n",
    "3. **应用公式**  $(2-1)$  进行计算：\n",
    "\n",
    "   \n",
    " $$\n",
    "   \\iint_D xy \\, d\\sigma = \\int_1^2 \\left[ \\int_1^x xy \\, dy \\right] dx = \\int_1^2 \\left[ x \\cdot \\frac{y^2}{2} \\right]_1^x \\, dx\n",
    "   $$ \n",
    "\n",
    "4. **计算内层积分**：\n",
    "\n",
    "   \n",
    " $$\n",
    "   = \\int_1^2 \\left( \\frac{x^3}{2} - \\frac{x}{2} \\right) dx\n",
    "   = \\left[ \\frac{x^4}{8} - \\frac{x^2}{4} \\right]_1^2 = \\frac{9}{8}\n",
    "   $$ \n",
    "\n",
    "\n",
    "这个解法通过将二重积分转化为先对  $y$  积分，再对  $x$  积分的顺序，简化了计算过程。最终得到的结果是  $\\frac{9}{8}$ "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
